/**   
 * Copyright © 2021 eSunny Info. Tech Ltd. All rights reserved.
 * 
 * 功能描述：
 * @Package: com.yl.staff.controller 
 * @author: Bai   
 * @date: 2021年1月22日 下午4:06:51 
 */
package com.yl.staff.controller;

import java.util.List;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.yl.staff.dao.MapSalaryHistory;
import com.yl.staff.model.BeanSalarHistory;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

/**   
* Copyright: Copyright (c) 2021 云邻信息科技
* 
* @ClassName: SalaryController.java
* @Description: 返回  salary （基本工资）标准数据
*
* @version: v1.1.0
* @author: Bai
* @date: 2021年1月26日 下午4:06:51 
*
* Modification History:<br>
* Date         Author          Version            Description
*---------------------------------------------------------*<br>
* 2021年1月22日     Bai             v1.0.0             新建<br>
* 2021年1月29日     Bai             v1.1.0                                   修改 addSalarHistory(BeanSalarHistory bsh)、upSalarHistory(BeanSalarHistory bsh)	  
* 												     两个方法中关于  oldQuota 和 newQuota 属性的数据类型 <br> 
*/
/*
 * 功能列表：
* 	Date         Author          Method            				 Description
*	---------------------------------------------------------------------*<br>
*	2021年1月25日     Bai            findAll()        				                                	  查找所有基本工资历史记录
*	2021年1月25日     Bai            findById(int id)        	     			           					  根据数据编号查看基本工资历史信息
*	2021年1月25日     Bai            findByStaffCode(String staffCode)        							  根据员工编号 查找基本工资历史信息
*	2021年1月25日     Bai            addSalarHistory(BeanSalarHistory bsh)	           					  添加员工基本工资工资历史信息
*	2021年1月26日     Bai            upSalarHistory(BeanSalarHistory bsh)	                      			  更新员工基本工资工资历史信息 
*	2021年1月26日     Bai            findByMessage(String message)             							  根据信息记录查找基本工资信息记录实体集合
*	2021年1月26日     Bai            findByChangeDate(String ChangeDate)       							  根据更改时间查找基本工资历史记录
*	2021年1月26日     Bai            findByChangeDateBetweenOn(String earlyDate,String lateData)          根据更改时间区间查找基本工资历史记录
*	2021年1月26日     Bai            findByEffectiveDate(String effectiveDate)      		     			  根据生效时间区间查找基本工资历史记录
* 
 * */
@RestController
@MapperScan("com.yl.staff.dao")
@Api(value = "基础数据接口", tags = "工资历史记录基本信息相关")
public class SalaryHistoryController {
	/*
	 * salary-message 数据接口对象
	 */
	@Autowired
	public MapSalaryHistory mapSalaryHistory;
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 查找所有基本工资历史记录
	*
	* @param:无
	* @return：返回结果描述
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午9:08:15 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                    新建 <br>
	 */
	@RequestMapping(value = "/dataSalaryHistorys",method = RequestMethod.GET)
	@ApiOperation(value = "查找所有基本工资历史记录")
	public List<BeanSalarHistory> findAll(){
		return mapSalaryHistory.selectAll();
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 该函数的功能描述
	*
	* @param:根据id查找所有基本工资历史记录
	* @return：List<BeanSalarHistory> 基本工资历史记录 OR [] 空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午9:12:00 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                   新建 <br>
	 */
	@RequestMapping(value = "/dataSalaryHistorysById",method = RequestMethod.POST)
	@ApiOperation(value = "根据id查找所有基本工资历史记录")
	public List<BeanSalarHistory> findById(@ApiParam(name="id",value="数据编号",required = true) @RequestParam(value="id") int id) {
		return mapSalaryHistory.selectByid(id);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 根据员工编号查找所有基本工资历史记录
	*
	* @param:String 员工编号
	* @return：返回结果描述
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午9:41:30 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                    新建<br>
	 */
	@RequestMapping(value = "/dataSalaryHistorysByStaffCode",method = RequestMethod.POST)
	@ApiOperation(value = "根据员工编号查找所有基本工资历史记录")
	public List<BeanSalarHistory> findByStaffCode(@ApiParam(name="staffCode",value="数据编号",required = true) @RequestParam(value="staffCode") String staffCode) {
		return mapSalaryHistory.selectByStaffCode(staffCode);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 添加基本工资历史记录
	*
	* @param:BeanSalarHistory 基本工资历史信息实体
	* @return： boolean ture OR false
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午10:25:35 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                   新建<br>
	* 2021年1月29日     Bai             v1.1.0                                   修改注解中 oldQuota 和 newQuota 属性的数据类型 更改为 BigDecimal<br>
	 */
	@RequestMapping(value = "/addSalaryHistory",method = RequestMethod.POST)
	@ApiOperation(value = "添加基本工资历史记录")
	@ApiImplicitParams({
		@ApiImplicitParam(paramType="query",name="id",dataType="id",required=false,value="该数据无需填写"),
		@ApiImplicitParam(paramType="query",name="staffCode",dataType="String",required=true,value="员工编号"),
		@ApiImplicitParam(paramType="query",name="message",dataType="String",required=true,value="内容信息：基本工资调整/社保代扣调整"),
		@ApiImplicitParam(paramType="query",name="changeDate",dataType="String",required=true,value="更改日期"),
		@ApiImplicitParam(paramType="query",name="effectiveDate",dataType="String",required=true,value="生效日期"),
		@ApiImplicitParam(paramType="query",name="oldQuota",dataType="BigDecimal",required=true,value="更改前额度"),
		@ApiImplicitParam(paramType="query",name="newQuota",dataType="BigDecimal",required=true,value="更改后额度"),
		@ApiImplicitParam(paramType="query",name="operationCategory",dataType="String",required=true,value="操作类别：提升/下降"),
	})
	public boolean addSalarHistory(BeanSalarHistory bsh) {
		return mapSalaryHistory.insertSalarHistory(bsh);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 根据数据编号更新基本工资历史记录
	*
	* @param: BeanSalarHistory 基本工资历史记录实体
	* @return： boolean true OR false
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午10:51:22 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                   新建 <br>
	* 2021年1月29日     Bai             v1.1.0                                   修改注解中 oldQuota 和 newQuota 属性的数据类型 更改为 BigDecimal<br>
	 */
	@RequestMapping(value = "/upSalaryHistory",method = RequestMethod.POST)
	@ApiOperation(value = "根据数据编号更新基本工资历史记录")
	@ApiImplicitParams({
		@ApiImplicitParam(paramType="query",name="id",dataType="int",required=true,value="数据编号"),
		@ApiImplicitParam(paramType="query",name="staffCode",dataType="String",required=false,value="该数据无需填写"),
		@ApiImplicitParam(paramType="query",name="message",dataType="String",required=true,value="内容信息：基本工资调整/社保代扣调整"),
		@ApiImplicitParam(paramType="query",name="changeDate",dataType="String",required=true,value="更改日期"),
		@ApiImplicitParam(paramType="query",name="effectiveDate",dataType="String",required=true,value="生效日期"),
		@ApiImplicitParam(paramType="query",name="oldQuota",dataType="BigDecimal",required=true,value="更改前额度"),
		@ApiImplicitParam(paramType="query",name="newQuota",dataType="BigDecimal",required=true,value="更改后额度"),
		@ApiImplicitParam(paramType="query",name="operationCategory",dataType="String",required=true,value="操作类别：提升/下降"),
	})
	public boolean upSalarHistory(BeanSalarHistory bsh)	{
		return mapSalaryHistory.updateSalarHistory(bsh);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 根据记录信息查找基本工资历史信息
	*
	* @param:String 记录信息（内容）
	* @return：List<BeanSalarHistory> 基本工资历史记录集合 OR [] 空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午11:24:47 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                    新建 <br>
	 */
	@RequestMapping(value = "/dataSalaryHistoryByMessage",method = RequestMethod.POST)
	@ApiOperation(value = "根据记录信息查找基本工资历史信息")
	public List<BeanSalarHistory> findByMessage(@ApiParam(name="message",value="记录信息",required = true) @RequestParam(value="message") String message){
		return mapSalaryHistory.selectByMessage(message);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 根据更新时间查找基本工资历史信息
	*
	* @param:String 更新时间
	* @return：List<BeanSalarHistory> 基本工资历史记录集合 OR [] 空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午11:25:48 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                   新建 <br>
	 */
	@RequestMapping(value = "/dataSalaryHistoryByChangeDate",method = RequestMethod.POST)
	@ApiOperation(value = "根据更新时间查找基本工资历史信息")
	public List<BeanSalarHistory> findByChangeDate(@ApiParam(name="changeDate",value="更新时间",required = true) @RequestParam(value="changeDate") String changeDate){
		return mapSalaryHistory.selectByChangeDate(changeDate);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 根据更新时间区间查找基本工资历史信息
	*
	* @param: String 稍早时间,String 稍晚时间
	* @return：List<BeanSalarHistory> 基本工资历史记录集合 OR [] 空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午11:39:34 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                    新建<br>
	 */
	@RequestMapping(value = "/dataSalaryHistoryByChangeDateBetweenOn",method = RequestMethod.POST)
	@ApiOperation(value = "根据更新时间区间查找基本工资历史信息")
	public List<BeanSalarHistory> findByChangeDateBetweenOn(@ApiParam(name="earlyDate",value="较早时间",required = true) @RequestParam(value="earlyDate") String earlyDate,@ApiParam(name="lateData",value="较晚时间",required = true) @RequestParam(value="lateData") String lateData){
		return mapSalaryHistory.selectByChangeDateBetweenOn(earlyDate, lateData);
	}
	/**
	 * 
	* @Function: SalaryHistoryController.java
	* @Description: 根据生效时间区间查找基本工资历史信息
	*
	* @param:String 生效日期
	* @return：List<BeanSalarHistory> 基本工资历史记录集合 OR [] 空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月27日 上午11:43:46 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月27日     Bai             v1.0.0                                   新建<br>
	 */
	@RequestMapping(value = "/dataSalaryHistoryByEffectiveDate",method = RequestMethod.POST)
	@ApiOperation(value = "根据生效时间区间查找基本工资历史信息")
	public List<BeanSalarHistory> findByEffectiveDate(@ApiParam(name="effectiveDate",value="生效时间",required = true) @RequestParam(value="effectiveDate") String effectiveDate){
		return mapSalaryHistory.selectByEffectiveDate(effectiveDate);
	}
}
